package com.yanxu.simplefactory;


import com.yanxu.domain.Video;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * @author 折戟沉沙铁未销
 * @version V1.0
 * @date 2025/3/12-2025
 * @Description: 这里用一句话描述这个类的作用
 */
public class Test {
//    public static void main(String[] args) {
//        //Video video=new VideoJava();
//        //video.produce();
//
//        Video video=new VideoPython();
//        video.produce();
//    }

    public static void main(String[] args) {
        //Video javaVide = VideoFactory.getVideo("java");
        Video pythonVide = VideoFactory.getVideo("python");
        pythonVide.produce();
    }

    /*
    * JDK 源码中使用简单工厂的方式
    * */
    public static void main1(String[] args) throws Exception {
        /*
        // 程序中使用 Class.forName("com.mysql.cj.jdbc.Driver") 这行代码，就会加载 mysql Driver 类
        Class.forName("com.mysql.cj.jdbc.Driver");
        // DriverManager.getConnection() 就是将 Connect 的创建过程封装到了工厂中。
        Connection connection = DriverManager.getConnection("jdbc://...", "user", "password");

        //-----------------------------------------------------------------------------------
        //Driver 类加载，就会执行 static 代码快，就会注册该驱动
        static {
            try {
                java.sql.DriverManager.registerDriver(new Driver());
            } catch (SQLException E) {
                throw new RuntimeException("Can't register driver!");
            }
        }
        */
    }
}